// 文件位置：[index.js](./web_finalexam-main/js/index.js)

// 引入所需的模块
const express = require('express');
const fs = require('fs');
const path = require('path');

// 创建Express应用
const app = express();

// 定义一个路由处理POST请求
app.post('/upload', async (req, res) => {
    try {
        // 获取请求体中的文件数据
        const { fileData, fileName } = req.body;

        // 检查文件名是否合法
        if (!fileName || !/^[a-zA-Z0-9_.-]+$/.test(fileName)) {
            return res.status(400).json({ error: 'Invalid file name' });
        }

        // 检查文件数据是否合法
        if (!fileData || typeof fileData !== 'string') {
            return res.status(400).json({ error: 'Invalid file data' });
        }

        // 将文件数据写入文件
        const filePath = path.join(__dirname, '..', 'public', fileName);
        fs.writeFileSync(filePath, fileData, 'utf-8');

        res.json({ success: true });
    } catch (error) {
        res.status(500).json({ error: error.message });
    }
});

// 启动服务器
app.listen(3000, () => {
    console.log('Server is running on port 3000');
});
